﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SIMCPresenter;
using SIMCObjetoNegocio;
using System.Globalization;

public partial class WebUserControls_WUCAportesYRetirosPortafolio : System.Web.UI.UserControl, IResumenAporteYRetirosView
{
    public ResumenAporteYRetirosPresenter m_Presenter;

    public event EventHandler<EventArgs> Iniciar;

    public event EventHandler<EventArgs> CambiarPeriodo;

    private CultureInfo myCulture = new CultureInfo("es-VE");

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        m_Presenter = new ResumenAporteYRetirosPresenter(this);
    }
    
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Iniciar != null)
            {
                Iniciar(null, null);
            }
        }
    }

    public string UsuarioExterno
    {
        get { return ((MembershipUsuario)Session["Usuario"]).UserName; }
    }

    public Portafolio DatosPortafolio
    {
        set
        {
            lblAlias.Text = value.Alias;
            lblTipo.Text = value.DescripcionTipoPortafolio;
        }
    }    

    public int PortafolioId
    {
        get
        {
            if (Request.QueryString["idportafolio"] != null)
            {
                return Convert.ToInt32(Request.QueryString["idportafolio"]);
            }
            return 0;
        }
        set
        {
            PortafolioId = value;
        }
    }

    public DateTime FechaPortafolio
    {
        get
        {
            txtFechaPeriodo.Text = ((SessionVariable)Session["variable"]).FechaPortafolio.ToShortDateString();
            return ((SessionVariable)Session["variable"]).FechaPortafolio;
        }
    }

    public DateTime Fecha
    {
        get
        {
            return Convert.ToDateTime(txtFechaPeriodo.Text,myCulture);
        }
    }

    public ResumenAportesYRetiros AporteYRetiro
    {
        set
        {
            string texto = "Valor de mercado el ";
            switch (ddlTipoPeriodo.SelectedItem.Text)
            { 
                case "YTD": lblEtiquetaValorInicial.Text = texto + Fecha.BuscarFechaInicialDelAnno().ToShortDateString()+":"; break;
                case "QTD": lblEtiquetaValorInicial.Text = texto + Fecha.BuscarFechaInicialDelTrimestre().ToShortDateString()+":"; break;
                case "MTD": lblEtiquetaValorInicial.Text = texto + Fecha.BuscarFechaInicialDelMes().ToShortDateString()+":"; break;
                case "Desde Inicio": lblEtiquetaValorInicial.Text = "Desde inicio de portafolio:"; break;
            }

            lblDivisa.Text = value.DivisaBase;
            lblEtiquetaValorFinal.Text = texto + Fecha.ToShortDateString()+":";
            string formato = "0,0.00";
            lblValorInicial.Text = value.NetoInicial.ToString(formato);
            lblAportes.Text = value.Ingresos.ToString(formato);
            lblRetiros.Text = value.Egresos.ToString(formato);
            lblValorFinal.Text = value.NetoFinal.ToString(formato);
            lblUtilidad.Text = value.Utilidad.ToString(formato);
        }
    }


    public PeriodosDelAnno Periodo
    {
        get
        {
            switch (ddlTipoPeriodo.SelectedItem.Text)
            { 
                case "YTD": return PeriodosDelAnno.YearToDate;
                case "QTD": return PeriodosDelAnno.QuarterToDate;
                case "MTD": return PeriodosDelAnno.MonthToDate;
                case "Desde Inicio": return PeriodosDelAnno.DesdeInicio;
                default: return PeriodosDelAnno.YearToDate;
            }
        }
    }
    protected void lbtnFiltrar_Click(object sender, EventArgs e)
    {
        CambiarPeriodo(null, null);
    }
    protected void LbtnVerGrid_Click(object sender, EventArgs e)
    {
        Response.Redirect("PrincipalExterno.aspx?idPortafolio=" + PortafolioId + "&Tipo=Composicion");
    }


    public List<AporteORetiro> Aportes
    {
        set 
        {
            gvAportes.DataSource = value;
            gvAportes.DataBind();
        }
    }

    public List<AporteORetiro> Retiros
    {
        set
        {
            gvRetiros.DataSource = value;
            gvRetiros.DataBind();
        }
    }
}